package com.wnzt.baszh.util.common;

/*
 * 文 件 名  :  PropertyPlaceholderConfigurerExt.java
 * 描    述    :  <描述>
 * 创建时间:  下午3:05:31
 */

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
 * 资源文件加密字段处理工具类
 * 
 * @version [版本号, 2013-7-1]
 */
public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer {
    
    /**
     * 需要加密的字段，用于标识那些字段是加过密的
     */
    private String[] encryptPropNames = { "jdbc.password"};
    
    @Override
    protected String convertProperty(String propertyName, String propertyValue) {
        if (isEncryptProp(propertyName)) {
            String decryptValue = CryptoUtil.aesDecrypt(propertyValue, GlobalStatic.SPRING_ENCRYPT_KEY);
            return decryptValue;
        }
        else {
            return propertyValue;
        }
    }
    
    /**
     * 判断属性是否为加密的属性
     * 
     * @param propertyName
     * @return [参数说明]
     * @return boolean [返回类型说明]
     */
    private boolean isEncryptProp(String propertyName) {
        for (int i = 0; i < encryptPropNames.length; i++) {
            if (encryptPropNames[i].equals(propertyName)) {
                return true;
            }
        }
        return false;
    }
}
